// 封装全局事件总线
class KXEventBus {
    constructor() {
        this.eventObj = {};
    }
    // 定义 on 方法
    on(eventName, eventFn) {
        // 1、根据事件名找到对应的事件数组
        let eventFns = this.eventObj[eventName];
        // 2、如果没有
        if (!eventFns) {
            eventFns = [];
            this.eventObj[eventName] = eventFns
        }
        // 3、将事件push进数组中保存起来
        eventFns.push(eventFn);
    }
    // 定义 emit 方法
    emit(eventName, ...args) {
        // 1、根据事件名找到对应的事件数组
        if (!eventName) return;
        let eventFns = this.eventObj[eventName];
        eventFns.forEach(fn => {
            fn(...args);
        })
    }
}
// 调用KXEventBus生成对应的实例对象，并导出
const eventBus = new KXEventBus();
export default eventBus;